When signal lines of an IC switch state from high to low (i.e., logic 1 to logic 0) or from low to high (i.e., from logic 0 to logic 1) at substantially the same instant in time, the switching of the lines can affect each other. For example, when one signal line, known as the victim signal line, switches from high to low at substantially the same time that multiple other signal lines, known as aggressor signal lines, switch from low to high, the switching of the aggressor signal lines opposite in polarity to the switching of the victim signal line can increase the delay in the transitioning of the victim signal line from high to low (i.e., increase the fall time of the victim signal). When a victim signal line switches from low to high at substantially the same instant in time that multiple aggressor signal lines switch from high to low, the switching of the aggressor signal lines can increase the delay in the transitioning of the victim signal from low to high (i.e., increase the rise time of the victim signal).
When a victim signal line switches from high to low at substantially the same time that multiple aggressor signal lines switch from high to low, the switching of the aggressor signal lines in the same direction of polarity as the victim signal line can speed up the transitioning of the aggressor signal line from high to low (i.e., decrease the fall time of the victim signal). Likewise, when a victim signal line switches from low to high at substantially the same time that multiple aggressor signal lines switch from low to high, the switching of the aggressor signal lines in the same direction of polarity as the victim signal line can speed up the transitioning of the aggressor signal line from low to high (i.e., decrease the rise time of the victim signal).
The effect of the aggressor signal lines on the victim signal line is commonly referred to as simultaneous switching noise (SSN). SSN affects both the output and input source-synchronous data transfer budgets. On the output side, SSN increases the data timing uncertainty with respect to the clock or strobe. This reduces the data valid window because the data valid window is defined as the guaranteed period with respect to the clock or strobe that the data cannot change. On the input side, SSN increases the setup and hold window. The setup and hold window is defined as the period of time with respect to the received clock or strobe that the receiver requires the data to remain stable. Input SSN increases this window by moving the data timing with respect to the clock or strobe, which can result in the data transition being moved into the setup and hold window. Since the setup and hold window is a guaranteed window for budgeting purposes, effects input SSN must be accounted for by increasing the window.
Once the SSN numbers are extracted, SSN is accounted for in the source-synchronous bus timing budget. The output data valid window is computed (both the size and position of the window relative to clock or strobe are important). The setup and hold window is also computed for the input side. It should be noted that SSN jitter is only one component of both these windows. From the input/output (IO) perspective, the setup and hold window must be smaller than the data valid window with some slack. A board designer will design the board such that the data and clock/strobe have flight times (i.e. delay through the wires that transmit the signals between chips) that place the setup and hold window inside the data valid window.
In the past, SSN has been estimated using computer simulation. One known simulation technique simulates switching nine aggressor signal lines simultaneously, or almost simultaneously, with the switching of a victim signal line. During a first part of the simulation, the aggressor signal lines are switched simultaneously with, and opposite in polarity to, the switching of the victim signal line and the effects on the rise and fall times of the victim signal line are measured. In this case, the rise and fall times of the victim signal line will increase due to the fact that the aggressor signal lines are switching in a direction of polarity opposite the direction of polarity of switching of the victim signal line.
The rise and fall times of the victim signal line unaffected by SSN are determined by the simulation program. To determine the effect of SSN on the rise time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and opposite in polarity, the simulation simply determines the difference between the rise time of the victim signal when the aggressor signal lines are not switched (i.e., the rise time unaffected by SSN) and the rise time of the victim signal when the aggressor signal lines are switched (i.e., the rise time as affected by SSN). The difference is an indication of the effect of SSN on the rise time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and opposite in polarity.
Similarly, to determine the effect of SSN on the fall time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and opposite in polarity, the simulation simply determines the difference between the fall time of the victim signal when the aggressor signal lines are not switched (i.e., the fall time unaffected by SSN) and the fall time of the victim signal when the aggressor signal lines are switched (i.e., the fall time as affected by SSN). The difference is an indication of the effect of SSN on the fall time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and opposite in polarity.
During a second part of the simulation, the aggressor signal lines are switched simultaneously and in the same direction of polarity as the switching of the victim signal line. The effect that the switching of the aggressor signal lines has on the rise and fall times of the victim signal line is measured. In this case, both the rise and fall times will have decreased due to the fact that the aggressor signal lines are being switched in the same direction of polarity as the victim signal line.
To determine the effect of SSN on the rise time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and in the same direction of polarity, the simulation simply determines the difference between the rise time of the victim signal when the aggressor signal lines are switched (i.e., the rise time as affected by SSN) and the rise time of the victim signal when the aggressor signal lines are not switched (i.e., the rise time unaffected by SSN). The difference is an indication of the effect of SSN on the rise time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and in the same direction of polarity.
Similarly, to determine the effect of SSN on the fall time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and in the same direction of polarity, the simulation simply determines the difference between the fall time of the victim signal when the aggressor signal lines are switched (i.e., the fall time as affected by SSN) and the fall time of the victim signal when the aggressor signal lines are not switched (i.e., the fall time unaffected by SSN). The difference is an indication of the effect of SSN on the fall time of the victim signal line when the victim and aggressor signal lines are switched simultaneously and in the same direction of polarity.
The description of the simulation given above assumes that the victim and aggressor signal lines are switched at exactly the same instant in time. In actuality, during the first and second parts of the simulation, the aggressor signal lines are swept in time relative to the victim signal line and the rise and fall times are measured. When the aggressor signal lines are swept, they are switched at the same instant in time relative to each other, but at various instants in time both before and after the instant in time at which the victim signal line is switched. The rise and fall times are analyzed by the simulation program separately and the largest deviations in the rise and fall times are classified as jitter.
The rise time jitter corresponds to the largest difference between the rise time when the aggressor signal lines are not switched (i.e., unaffected by SSN) and the rise time when the aggressor signal lines are switched (i.e., as affected by SSN). A rise time jitter value will be determined for the case when the aggressor signal lines are switched in the same direction of polarity as the victim signal line and for the case when the aggressor signal lines are switched in the opposite direction of polarity as the victim signal line.
The fall time jitter corresponds to the largest difference between the fall time when the aggressor signal lines are not switched (i.e., unaffected by SSN) and the fall time when the aggressor signal lines are switched (i.e., as affected by SSN). A fall time jitter value will be determined for the case when the aggressor signal lines are switched in the same direction of polarity as the victim signal line and for the case when the aggressor signal lines are switched in the opposite direction of polarity as the victim signal line.
The simulation program measures input and output SSN separately so that input SSN measurements will not be affected by output SSN, and vice versa. To measure input SSN, the input pad of the victim and the input pads of the aggressor lines are simulated as receiving at the same instant in time, or substantially at the same instant in time (i.e., due to sweeping), but the output pads are not simulated as transmitting at the same instant in time. To measure output SSN, the output pad of the victim signal line and the output pads of the aggressor lines are simulated as transmitting at the same instant in time, or at substantially the same instant in time (i.e., due to sweeping), but the input pads are not simulated as receiving at the same instant in time. Based on the results of the simulation, a determination can be made as to whether input SSN and/or output SSN will cause timing errors to occur.
Although the simulation technique described above is believed to work well for its intended purpose, the accuracy of the simulation, i.e., the degree of correlation between the computer simulation and performance in an actual IC, has never been determined. Accordingly, a need exists for a way to check to accuracy of the computer simulation.